#pragma once
#ifndef uint8 
#define uint8 unsigned char 
#endif 

#ifndef uint32 
#define uint32 unsigned long int 
#endif 
typedef struct 
{ 
	uint32 total[2]; 
	uint32 state[5]; 
	uint8 buffer[64]; 
} sha1_context; 

class SHA1
{
public:
	SHA1(void);
	~SHA1(void);
	static void sha1_starts( sha1_context *ctx ); 
	static void sha1_update( sha1_context *ctx, uint8 *input, uint32 length ); 
	static void sha1_finish( sha1_context *ctx, uint8 digest[20] ); 
	static void sha1_process( sha1_context *ctx, uint8 data[64] ) ;

};